在工业图像中,不同时间段拍摄的图像质量层次不齐,需要按需选择合适的调整方式,本文列出了几种基本的方法:
1.直方图均衡
图像直方图存在峰值时,如暗峰值,亮峰值,中间峰值,通过直方图均衡,可以将图像调整为高对比度的效果。该算法比较成熟,在matlab中只需要一句话就可以实现。
eqimg =histeq(img);
OpenCV原型:void equalizeHist( InputArray src, OutputArray dst );
2.色阶调整
也是一种亮度均衡,将最小,最大区间的图像拉伸到一个线性的范围。
公式:dst(i,j)=(src(i,j)-min)/(max-min)*255;
算法对min,max的取值需要自己调节。
matlab也只需要一句就可以实现:
min=10;
max=250;
dst=(src-min)/(max-min)*255;
dst=uint8(dst);
这种方法适合图像整体偏暗或者偏亮的情况。
3.对比度调整
采用线性的方法实现对图像中暗区域更暗,亮区域增强的效果。公式:dst(i,j)=alpha*(src(i,j)-mean)+beta;
mean的取值可以是图像全局也可以是局部,根据需要调整。具体的实现代码:
clc;
close all;
clear all;
img=imread('J.bmp');
h=fspecial('average',[50,50]);%3*3均值